package org.jiuling.local.tools.verify;

import java.util.regex.Pattern;

/**
 * 字符串校验
 * @author 紫灵
 * @date 2021年09月09日 12时56分09秒
 */
@Deprecated
public class StringVerify {

    /** 私有构造方法，禁止创建对象 */
    private StringVerify(){}

    /**
     * 验证是否为空
     * @param str 字符串
     * @return 是否为空字符串
     */
    public static boolean isNull(String str){
        return str == null;
    }

    /**
     * 验证是否为空白字符串
     * 空白字符串定义：显示为空白的均为空白字符串，例如：空格、制表符、换行符等
     * @param str 字符串
     * @return 是否为空白字符串
     */
    public static boolean isBlank(String str){
        // 定义长度，在后续验证字符时使用
        int length;

        if(str == null || (length = str.length()) == 0){
            return true;
        }

        // 准备遍历字符串
        for (int i = 0 ; i < length ; i++){
            // 如果有非空白字符则表示该字符串为非空白字符串
            if(!CharVerify.isBlank(str.charAt(i))){
                return false;
            }
        }
        return true;
    }

    /**
     * 验证字符串是否全部为空白
     * @param strs 字符串列表
     * @return 是否全部为空白
     */
    public static boolean allIsBlank(String... strs){
        // 遍历字符串
        for (String str : strs){
            // 判断字符串是否为空
            if(!isBlank(str)){
                // 当存在不为空的字符串时返回 false
                return false;
            }
        }
        return true;
    }

    /**
     * 验证字符串是否全部存在
     * @param strs 字符串列表
     * @return 是否全部存在
     */
    public static boolean allIsExist(String... strs){
        for (String str:strs){
            if(isBlank(str)){
                return false;
            }
        }
        return true;
    }

    /**
     * 验证字符串是否是数字
     * @param str 字符串
     * @return 是否是数字
     */
    public static boolean isNumeric(String str){
        return Pattern.matches("[0-9]*",str);
    }

}
